m_pDlg->GetSafeHwnd() 这个函数什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:28:19
是获得指针所指的对象的句柄?
m_pDlg是指向一个CDialog对象的指针

书上用这个“if(m_pDlg->GetSafeHwnd()==0)”来判断该指针指向的对象代表的对话框(一个对话框资源和一个对话框类的对象相关联)资源有没有显示出来 请解释下

最好详细点

CWnd::GetSafeHwnd

HWND GetSafeHwnd( ) const;

返回值:
返回窗口的句柄。如果CWnd对象没有与一个窗口连接或它使用的CWnd指针为NULL,则返回NULL。

如果对话框窗口句柄为0,则说明对话框窗口不存在,则需要创建一个

当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,而你前面用m_pDlg调用它,说明你获得的是m_pDlg是指向一个CDialog对象的句柄。
再获得了一个对话框的句柄之后,你就可以通过这个句柄对对话框做出几乎任何的操作。你的if(m_pDlg->GetSafeHwnd()==0)可以判断这个对话框的是否有句柄,如果句柄值为零说明你的对话框有问题,也就可以判断下面的东西了。